package com.sdweizan.sdk.bytedance.bean.refund;

import com.alibaba.fastjson.annotation.JSONField;
import com.sdweizan.sdk.bytedance.bean.BdBaseRequest;
import com.sdweizan.sdk.bytedance.constants.BdConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BdCreateRefundRequest implements BdBaseRequest {
  @JSONField(name = "app_id")
  private String appId;

  // 商户分配支付单号，标识进行退款的订单
  @JSONField(name = "out_order_no")
  private String outOrderNo;

  // 商户分配退款号，保证在商户中唯一
  @JSONField(name = "out_refund_no")
  private String outRefundNo;

  // 退款原因
  @JSONField(name = "reason")
  private String reason;

  // 退款金额，单位分
  @JSONField(name = "refund_amount")
  private Long refundAmount;

  @JSONField(name = "sign")
  private String sign;

  // 开发者自定义字段，回调原样回传
  @JSONField(name = "cp_extra")
  private String cpExtra;

  // 商户自定义回调地址
  @JSONField(name = "notify_url")
  private String notifyUrl;

  // 第三方平台服务商id
  @JSONField(name = "thirdparty_id")
  private String thirdpartyId;

  // 是否屏蔽担保支付的推送消息枚举值：
  // 1：屏蔽
  // 0：非屏蔽，
  // 若接入POI，POI订单体系会发相关消息，所以不用再接收一次担保支付相关的消息，请传1
  @JSONField(name = "disable_msg")
  private String disableMsg;

  // 退款完成后推送给用户的抖音消息跳转页面，开发者需要传入在app.json中定义的链接，如果不传则跳转首页。
  @JSONField(name = "msgPage")
  private String msgPage;

  @Override
  public String requestUri() {
    return BdConstants.API_HOST + "/api/apps/ecpay/v1/create_refund";
  }
}
